/* 日志消息类：封装一条完整日志所需的各项要素
    ⽇志等级
    对应的logger name
    ⽇志源⽂件的位置信息（包括⽂件名和⾏号）
    线程ID
    间戳信息
    具体的⽇志信息
*/
#ifndef __M_MSG_H__
#define __M_MSG_H__
#include "level.hpp"
#include "util.hpp"
#include <thread>

namespace Mylog
{
    struct LogMsg
    {
        time_t _ctime;          // 时间戳
        LogLevel::value _level; // 日志输出等级
        std::thread::id _tid;   // 线程
        size_t _line;           // 行号
        std::string _file;      // 文件名
        std::string _logger;    // 日志器名称
        std::string _payload;   // 有效主体消息

        LogMsg(LogLevel::value level, std::string file, size_t line, std::string logger, std::string meg)
            : _ctime(Mylog::util::Date::now()), _level(level), _tid(std::this_thread::get_id()),
              _file(file), _line(line), _logger(logger), _payload(meg)
        {
        }
    };
}
#endif